/*
 * 文件名：BookOrderInfoService.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：ozm
 * 修改时间：2013-1-25
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.cms.service.reservation.bookinfo.service;
import javax.servlet.http.HttpServletRequest;
import com.wootide.cms.common.Page;
import com.wootide.cms.common.QueryCondition;
import com.wootide.cms.common.Result;
import com.wootide.cms.service.reservation.bookinfo.pojo.BookOrderInfo;
import com.wootide.cms.service.reservation.orderby.pojo.OrderByInfo;
import com.wootide.cms.sys.user.pojo.UserInfo;


/**
 * 客户预订业务层接口层
 * 〈一句话功能简述〉
 * 〈功能详细描述〉
 * @author ozm
 * @version 2013-1-25
 * @see BookOrderInfoService
 * @since 2013-1-25下午4:46:25
 */
public interface BookOrderInfoService
{
    /**
     * 
     * Description: 分页查询
     * Implement: <br>
     * @param page 分页参数
     * @param queryConditon 查询条件
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-29下午1:23:32
     */
    Result queryForPages(Page page, QueryCondition queryConditon);
    
    /**
     * 
     * Description: 添加一条客户预订信息
     * Implement: <br>
     * @param queryConditon 要添加的客户预订信息
     * @param request HttpServletRequest
     * @return
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-29下午1:26:06
     */
    Result addOneBookOrder(QueryCondition queryConditon,HttpServletRequest request);
    
    /**
     * 
     * Description: 修改一条客户预订信息
     * Implement: <br>
     * @param bookOrderInfo 要修点的客户预订信息
     * @param request HttpServletRequest
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-29下午1:27:37
     */
    Result modOneBookOrder(BookOrderInfo bookOrderInfo,HttpServletRequest request);
    
    /**
     * 修改一房间的时段信息
     * Description: <br>
     * Implement: <br>
     * @param bookOrderInfo 订单信息
     * @param innerIndexs 修改后的时段索引
     * @param request 
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-4-12下午5:31:59
     */
    Result modOneOrderRoomPeriod(BookOrderInfo bookOrderInfo, Integer[] innerIndexs, HttpServletRequest request);
    
    /**
     * 修改一桌次的时段信息
     * Description: <br>
     * Implement: <br>
     * @param bookOrderInfo 订单信息
     * @param innerIndexs 修改后的时段索引
     * @param request 
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-4-12下午5:31:59
     */
    Result modOneOrderTablePeriod(BookOrderInfo bookOrderInfo, Integer[] innerIndexs, HttpServletRequest request);
    
    /**
     * 
     * Description: 删除客户预订信息
     * Implement: <br>
     * @param innerIndexs 要删除的客户预订信息id列表
     * @param request HttpServletRequest
     * @return
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-29下午4:17:56
     */
    Result delBookOrders(Integer[] innerIndexs, HttpServletRequest request);
    
    /**
     * 取消已经预订的时段
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 条件
     * @param request 
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-4-16下午1:20:54
     */
    Result delOrderPeriods(QueryCondition queryConditon,HttpServletRequest request);
   
    /**
     * 
     * Description: 通过索引查询一条客户预订信息
     * Implement: <br>
     * @param innerIndex 要查询一条客户预订信息的Id
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-29下午3:55:17
     */
    Result viewOneBookOrder(Integer innerIndex);
    
    /**
     * 
     * Description: 验证该客户是否为会员
     * Implement: <br>
     * @param bookOrderInfo 客户预订信息名称
     * @return
     * @see
     * @return Result 结果对象
     * @author ozm2013-1-31下午1:41:22
     */
    Result checkContentWhenAdd(BookOrderInfo bookOrderInfo);
    
//    /**
//     * 
//     * Description: 可预订房间分页查询
//     * Implement: <br>
//     * @param page 分页参数
//     * @param queryConditon 查询条件
//     * @see
//     * @return Result 结果对象
//     * @author ozm2013-1-29下午1:23:32
//     */
//    Result queryBookableRoomForPages(Page page, QueryCondition queryConditon);
    
    /**
     * 查询可预订房间时段信息
     * Description: <br>
     * Implement: <br>
     * @param queryConditon
     * @return
     * @see
     * @return Result
     * @author ozm2013-3-15下午2:03:01
     */
    Result queryBookableRoomPeriod(QueryCondition queryConditon);
    
    
    /**
     * 查询可预订房间信息
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 查询条件
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-3-15下午2:03:01
     */
    Result queryBookableRooms(QueryCondition queryConditon);
    
    /**
     * 查询可预订桌次信息
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 查询条件
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-3-15下午2:03:01
     */
    Result queryBookableTableNos(QueryCondition queryConditon);
    
    
    /**
     * 查询可预订桌次时段
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 查询条件
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-3-15下午2:03:01
     */
    Result queryBookableTablePeriods(QueryCondition queryConditon);
    
    
    /**
     * 查询所有预订方式和支付方式
     * Description: <br>
     * Implement: <br>
     * @return
     * @see
     * @return Result
     * @author ozm2013-3-26下午6:39:15
     */
    Result queryBookingPreviewInfo(QueryCondition queryConditon);
    
    /**
     * 查询预订方式和支付方式
     * Description: <br>
     * Implement: <br>
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-3-28下午7:51:52
     */
    Result queryBookableOrderBysAndPayments();
    
    /**
     * 查询订单预览时间段信息
     * Description: <br>
     * Implement: <br>
     * @param queryConditon
     * @return
     * @see
     * @return Result
     * @author ozm2013-3-30下午11:48:18
     */
    Result queryPreviewPeriods(QueryCondition queryConditon);
    
    /**
     * 通过索引获取房间预订时段
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 房间索引和订单索引
     * @return
     * @see
     * @return Result 房间时段结果集
     * @author ozm2013-4-10下午2:07:44
     */
    Result queryOrderRoomPeriods(QueryCondition queryConditon);
    
    /**
     * 通过索引获取桌次预订时段
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 桌次索引和订单索引
     * @return
     * @see
     * @return Result 桌次时段结果集
     * @author ozm2013-4-10下午2:07:44
     */
    Result queryOrderTablePeriods(QueryCondition queryConditon);
    
    /**
     * 通过起止时间和房间桌次信息查询时段信息
     * Description: <br>
     * Implement: <br>
     * @param queryConditon 查询条件（起止时间、房间ID、桌次ID）
     * @return
     * @see
     * @return Result 结果集
     * @author ozm2013-4-11下午5:26:32
     */
    Result queryPeriods(QueryCondition queryConditon);
    
}
